"""
标签映射和数据预处理模块
将原始标签转换为完整的中文描述
"""

# 标签映射字典
LABEL_MAPPING = {
    'esno': '有ES没有扩展F',
    'zbzb': 'ES遮蔽了扩展F信号', 
    'essf': '有ES有扩展F',
    'nosf': '没有ES但有扩展F',
    'nono': '没有ES没有扩展F',
    'eszb': 'ES遮蔽信号'  # 新增的标签
}

# 标签到数字的映射（用于模型训练）
LABEL_TO_ID = {
    'esno': 0,  # 有ES没有扩展F
    'zbzb': 1,  # ES遮蔽了扩展F信号
    'essf': 2,  # 有ES有扩展F
    'nosf': 3,  # 没有ES但有扩展F
    'nono': 4,  # 没有ES没有扩展F
    'eszb': 5   # ES遮蔽信号
}

# 数字到标签的映射（用于预测结果解释）
ID_TO_LABEL = {v: k for k, v in LABEL_TO_ID.items()}

# 数字到完整描述的映射
ID_TO_DESCRIPTION = {
    0: '有ES没有扩展F',
    1: 'ES遮蔽了扩展F信号', 
    2: '有ES有扩展F',
    3: '没有ES但有扩展F',
    4: '没有ES没有扩展F',
    5: 'ES遮蔽信号'
}

# 完整描述到数字的映射（用于推理脚本）
DESCRIPTION_TO_ID = {v: k for k, v in ID_TO_DESCRIPTION.items()}

def get_label_description(label):
    """获取标签的完整描述"""
    return LABEL_MAPPING.get(label, f"未知标签: {label}")

def get_label_id(label):
    """获取标签对应的数字ID"""
    return LABEL_TO_ID.get(label, -1)

def get_description_from_id(label_id):
    """从数字ID获取完整描述"""
    return ID_TO_DESCRIPTION.get(label_id, f"未知ID: {label_id}")

def print_label_statistics():
    """打印标签统计信息"""
    print("标签映射表:")
    print("-" * 50)
    for label, desc in LABEL_MAPPING.items():
        print(f"{label:6} -> {desc}")
    print("-" * 50)
    print(f"总共 {len(LABEL_MAPPING)} 个类别")

if __name__ == "__main__":
    print_label_statistics()